ECat iOS SDK使用文档#


一、接入步骤#

1.1 SDK文件说明#

  • libECat.a:SDK文件
  • include
    • ECat.h:API头文件
    • ECatConfig.h
    • ECatLog.h

1.2 SDK集成#

  1. 导入头文件

    将include中的头文件拖入到工程目录

  2. 导入SDK

    在xcode,拖动libECat.a至Build Phases->Link Binary With Libraries中

1.3 初始化#

在工程的AppDelegate.m文件导入头文件并完成初始化

// 导入库
#import "ECat.h"
// 在起始位置执行初始化
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //初始化配置(可选)
    ECatConfig *config = [[ECatConfig alloc]init];
    config.enableDebugMode = YES;//是否启用调试模式(默认:NO,正式发布的版本请设置为NO)
    config.appVersion = @"2.0"; //应用版本
    config.userId = @"uid01";	//用户id
    config.lagThreshold = 5000; //卡顿阈值(单位:ms,有效值:2000-6000,默认:5000)
    config.enableAllMonitor = YES; //设置是否在初始化时开启所有崩溃检测(默认:YES)
    //初始化(必须)
    [ECat startWithAppId:@"平台分配的AppId" config:config];
	return YES;
}

1.4 符号文件上传#

有关符号文件的说明见《符号文件上传工具使用文档》

二、API说明#

/**
 *  使用指定配置初始化ECat 调用后会初始化日志功能  执行初始化的操作
 *  @param appId 平台分配的AppId
 *  @param config 传入配置的 ECatConfig
 */
+ (void)startWithAppId:(NSString* ECat_NONNULL)appId
                config:(ECatConfig* ECat_NULLABLE)config;
/**
 *  设置用户Id, 在初始化后调用
 *  @param userId 用户标识
 */
+ (void)setUserId:(NSString *)userId;
/**
 *  更新版本信息, 在初始后调用
 *  @param version 应用版本信息
 */
+ (void)setAppVersion:(NSString *)version;
/**
 *	添加自定义键值对,随异常数据上传
 *  @param value Value
 *  @param key Key
 */
+ (void)addUserValue:(NSString *)value
              forKey:(NSString *)key;

//删除键值对
+ (void)removeUserKey:(NSString *)key;

/**
 *  设置标签
 *  @param tag 标签ID
 */
+ (void)setTag:(NSUInteger)tag;
/**
 *  设置卡顿阈值,2000至6000,默认值:5000,单位:ms
 *  @param threshold 卡顿阈值
 */
+ (void)setLagThreshold:(int)threshold;
/**
 *  停止卡顿检测
 *
 *  @param duration  停止持续时间(单位:秒),duration  > 0时,经过duration时间后卡顿检测再次开启,否则不再开启
 */
+ (void)stopLagMonitor:(int)duration;
/**
 * 开启卡顿检测
 */
+ (void)startLagMonitor;
/**
 *  开启所有异常检测
 */
+ (void)startAllMonitor;

/**
 *  关闭所有异常检测
 */
+ (void)stopAllMonitor;
/**
 *  获取ECat内部设备ID
 *  @return 设备ID
 */
+ (NSString*)getDeviceId;

/**
     * 获取应用上次退出信息
     * @return 上次退出信息(json格式),示例:{"type":"","crashUuid":"","crashTime":0,"finishCrashCallback":false}
     * 字段说明:
     * type:退出类型。取值范围:
     *      "":无崩溃
     *      "iOSCrash":崩溃
     *      "BlockCrash":iOS卡死崩溃
	 *      "FOOM":iOS FOOM
     * crashUuid:崩溃id。若上次退出类型为崩溃,则为该崩溃数据的id
     * crashTime:崩溃时间(单位:毫秒)。若上次退出类型为崩溃,则为该崩溃的时间
     * finishCrashCallback:是否完成CrashCallback崩溃回调。若上次崩溃后,执行了回调函数并且回调函数返回值为true,则为true,否则为false
     */
+ (NSString*)getLastExitInfo;

//设置崩溃回调
+ (void)setCrashCallback:(bool (*)(const char*))callback;

/**
 *  上报捕获的Objective-C异常
 *  @param exception 异常信息
 */
+ (void)reportException:(NSException*)exception;
/**
 *  上报错误
 *  @param error 错误信息
 */
+ (void)reportError:(NSError*)error;
/**
 *  获取SDK 版本信息
 *  @return SDK版本号
 */
+ (NSString*)sdkVersion;

+ (void)testNativeCrash;

//通知应用即将退出,退出应用前调用此接口,以减少FOOM误报
+ (void)notifyAppWillQuit;